home *** CD-ROM | disk | FTP | other *** search
/ Aminet 37 / Aminet 37 (2000)(Schatztruhe)[!][Jun 2000].iso / Aminet / dev / src / emog.lha / absy.e next >
Encoding:
Text File  |  2000-03-07  |  4.8 KB  |  216 lines

  1. /* -- ----------------------------------------------------- -- *
  2.  * -- Name........: absy.e                                  -- *
  3.  * -- Description.: Simple description of our grammar.      -- *
  4.  * -- Author......: Daniel Kasmeroglu                       -- *
  5.  * -- E-Mail......: raptor@cs.tu-berlin.de                  -- *
  6.  * --               daniel.kasmeroglu@daimlerchrysler.com   -- *
  7.  * -- Date........: 05-Mar-00                               -- *
  8.  * -- Version.....: 0.1                                     -- *
  9.  * -- ----------------------------------------------------- -- */
  10.  
  11. /* -- ----------------------------------------------------- -- *
  12.  * --                          Options                      -- *
  13.  * -- ----------------------------------------------------- -- */
  14.  
  15. OPT MODULE
  16. OPT EXPORT
  17.  
  18.  
  19. /* -- ----------------------------------------------------- -- *
  20.  * --                          Modules                      -- *
  21.  * -- ----------------------------------------------------- -- */
  22.  
  23. MODULE  'exec/nodes'    ,
  24.     'exec/lists'
  25.  
  26.  
  27. /* -- ----------------------------------------------------- -- *
  28.  * --                         Constants                     -- *
  29.  * -- ----------------------------------------------------- -- */
  30.  
  31. ENUM    VARIANT_INCLUDEFILE = 1 ,
  32.     VARIANT_STRUCT          ,
  33.     VARIANT_POINTING        ,
  34.     VARIANT_TYPE            ,
  35.     VARIANT_ARGUMENT        ,
  36.     VARIANT_ARGS            ,
  37.     VARIANT_FUNCTION        ,
  38.     VARIANT_EXPRESSION      ,
  39.     VARIANT_CONSTANT        ,
  40.     VARIANT_INCFILE         ,
  41.     VARIANT_CONDITIONAL     ,
  42.     VARIANT_IDELIST         ,
  43.     VARIANT_COMPONENT       ,
  44.     VARIANT_COMPS           ,
  45.     VARIANT_STRUCT          ,
  46.     VARIANT_VARIABLE        ,
  47.     VARIANT_IDEARRAYED      ,
  48.     VARIANT_COMPRIGHT       ,
  49.     VARIANT_CAST            ,
  50.     VARIANT_FAULTY
  51.  
  52. ENUM    TYP_STRUCT = 100    ,
  53.     TYP_DEFINED
  54.  
  55. ENUM    EXTYP_ID = 200      ,
  56.     EXTYP_SIGNED        ,
  57.     EXTYP_STRING        ,
  58.     EXTYP_HEXVALUE      ,
  59.     EXTYP_DECVALUE      ,
  60.     EXTYP_NEGOTIATE     ,
  61.     EXTYP_SHIFTLEFT     ,
  62.     EXTYP_SHIFTRIGHT    ,
  63.     EXTYP_PLUS          ,
  64.     EXTYP_MINUS         ,
  65.     EXTYP_BITAND        ,
  66.     EXTYP_BITOR         ,
  67.     EXTYP_MUL           ,
  68.     EXTYP_DIV
  69.  
  70.  
  71. /* -- ----------------------------------------------------- -- *
  72.  * --                        Structures                     -- *
  73.  * -- ----------------------------------------------------- -- */
  74.  
  75. -> Basic structure of each component. [ ABSY = Abstract Syntax ]
  76. -> Note that not all components are used at the end since
  77. -> a lot of them are only existing for easier work.
  78.  
  79. ->> STRUCTURE absy
  80. OBJECT absy OF mln
  81.   variant : INT
  82. ENDOBJECT
  83. -><
  84.  
  85.  
  86. ->> VARIANT includefile     : absy
  87. OBJECT includefile OF absy
  88.   entries : mlh
  89. ENDOBJECT
  90. -><
  91.  
  92. ->> VARIANT pointing        : absy
  93. OBJECT pointing OF absy
  94.   number : INT
  95. ENDOBJECT
  96. -><
  97.  
  98. ->> VARIANT type            : absy
  99. OBJECT type OF absy
  100.   specification : INT
  101.   name          : PTR TO CHAR
  102. ENDOBJECT
  103. -><
  104.  
  105. ->> VARIANT argument        : absy
  106. OBJECT argument OF absy
  107.   type     : PTR TO type
  108.   pointing : PTR TO pointing
  109.   name     : PTR TO CHAR
  110. ENDOBJECT
  111. -><
  112.  
  113. ->> VARIANT args            : absy
  114. OBJECT args OF absy
  115.   arguments : mlh
  116. ENDOBJECT
  117. -><
  118.  
  119. ->> VARIANT function        : absy
  120. OBJECT function OF absy
  121.   type     : PTR TO type
  122.   pointing : PTR TO pointing
  123.   name     : PTR TO CHAR
  124.   args     : PTR TO args
  125. ENDOBJECT
  126. -><
  127.  
  128. ->> VARIANT expression      : absy
  129. OBJECT expression OF absy
  130.   extyp : INT
  131.   value : LONG
  132.   id    : PTR TO CHAR
  133.   left  : PTR TO expression
  134.   right : PTR TO expression
  135.   cast  : PTR TO cast
  136. ENDOBJECT
  137. -><
  138.  
  139. ->> VARIANT constant        : absy
  140. OBJECT constant OF absy
  141.   id    : PTR TO CHAR
  142.   expr  : PTR TO expression
  143. ENDOBJECT
  144. -><
  145.  
  146. ->> VARIANT incfile         : absy
  147. OBJECT incfile OF absy
  148.   current : INT
  149.   path    : PTR TO CHAR
  150. ENDOBJECT
  151. -><
  152.  
  153. ->> VARIANT conditional     : absy
  154. OBJECT conditional OF absy
  155.   test    : PTR TO CHAR
  156.   neg     : INT
  157.   include : PTR TO includefile
  158. ENDOBJECT
  159. -><
  160.  
  161. ->> VARIANT idelist         : absy
  162. OBJECT idelist OF absy
  163.   comprights : mlh
  164. ENDOBJECT
  165. -><
  166.  
  167. ->> VARIANT component       : absy
  168. OBJECT component OF absy
  169.   type      : PTR TO type
  170.   idelist   : PTR TO idelist
  171. ENDOBJECT
  172. -><
  173.  
  174. ->> VARIANT comps           : absy
  175. OBJECT comps OF absy
  176.   components : mlh
  177. ENDOBJECT
  178. -><
  179.  
  180. ->> VARIANT struct          : absy
  181. OBJECT struct OF absy
  182.   name       : PTR TO CHAR
  183.   components : PTR TO comps
  184. ENDOBJECT
  185. -><
  186.  
  187. ->> VARIANT variable        : absy
  188. OBJECT variable OF absy
  189.   type     : PTR TO type
  190.   idelist  : PTR TO idelist
  191. ENDOBJECT
  192. -><
  193.  
  194. ->> VARIANT idearrayed      : absy
  195. OBJECT idearrayed OF absy
  196.   identifier : PTR TO CHAR
  197.   times      : INT
  198. ENDOBJECT
  199. -><
  200.  
  201. ->> VARIANT compright       : absy
  202. OBJECT compright OF absy
  203.   pointing   : PTR TO pointing
  204.   idearrayed : PTR TO idearrayed
  205. ENDOBJECT
  206. -><
  207.  
  208. ->> VARIANT cast            : absy
  209. OBJECT cast OF absy
  210.   name     : PTR TO CHAR
  211.   isstruct : INT
  212.   pointing : PTR TO pointing
  213. ENDOBJECT
  214. -><
  215.  
  216.